package com.aaa.d04;

import com.aaa.d03.Info;

/**
 * @Author: whj
 * @Version 1.0
 * @Date: 2022/10/25  14:24
 */
public class Test {
    public static void main(String[] args) {
        Info<Integer> info1 = new Info<>();
        info1.setVar(20);
        //没有出现错误---因为Integer属于Number的子类
        fun(info1);


        Info<Number> info2 = new Info<>();
        info2.setVar(200.3);
        fun(info2);


        Info<String> info3 = new Info<>();
        info3.setVar("hello");
        //因为String属于Number的子类
        //fun(info3);

        fun2(info3);


        Info<Object> info4 = new Info<>();
        fun2(info4);
    }

    //设置对象泛型的上限 要求：要求泛型是Number或者Number的子类
    public static void fun(Info<? extends Number> info){
        info.show();
    }
    //设置对象泛型的下限 要求：要求泛型最低是String或者其父类
    public static void fun2(Info<? super String> info){
        info.show();
    }
}